package com.jingxuan.service;

import com.jingxuan.dto.response.BrowseHistoryResponse;
import com.jingxuan.util.UserBehaviorAlgorithm.BrowseRecord;
import com.jingxuan.util.UserBehaviorAlgorithm.SearchRecord;
import com.jingxuan.util.UserBehaviorAlgorithm.UserBehaviorSummary;
import com.jingxuan.util.UserBehaviorAlgorithm.GlobalBehaviorStats;

/**
 * 用户行为服务，负责记录并缓存用户的搜索和浏览行为，
 * 同时为个性化推荐算法提供行为画像。
 */
public interface UserBehaviorService {

    /**
     * 记录用户搜索行为。
     *
     * @param record 搜索行为记录
     */
    void recordSearchBehavior(SearchRecord record);

    /**
     * 记录用户浏览行为。
     *
     * @param record 浏览行为记录
     */
    void recordBrowseBehavior(BrowseRecord record);

    /**
     * 获取用户的行为摘要画像。
     *
     * @param userId 用户ID
     * @return 行为摘要，若不存在返回空摘要
     */
    UserBehaviorSummary getUserBehaviorSummary(Long userId);

    /**
     * 获取用户浏览记录。
     *
     * @param userId 用户ID
     * @param limit  返回的最大条数
     * @return 浏览记录响应
     */
    BrowseHistoryResponse getBrowseHistory(Long userId, int limit);

    /**
     * 获取全局行为统计数据。
     *
     * @return 全局统计
     */
    GlobalBehaviorStats getGlobalBehaviorStats();
}
